#include "BoolOp.h"
#include "IVisitor.h"

BoolOp::BoolOp(int op, const ExprTypeList& values, int nodeId):
    exprType(nodeId),
    _op(op),
    _values(values)
{
}
    
BoolOp::~BoolOp()
{
    _values.clear();
}
    
Ast::AstTypes BoolOp::type() const
{
    return Ast::BoolOp;
}
    

int BoolOp::op()
{
    return _op;
}

void BoolOp::setOp(int op)
{
    _op = op;
}

ExprTypeList BoolOp::values()
{
    return _values;
}

void BoolOp::setValues(const ExprTypeList& values)
{
    _values = values;
}

    
QString BoolOp::toString() const
{
    return QString("BoolOp[op=%1, values=%2]").
                arg(_op).
                arg(_values.toString());
}
    
void BoolOp::accept(IVisitor* visitor, const SimpleNodePtr& node)
{
    visitor->visitBoolOp(node.dynamicCast<BoolOp>());
}
    
void BoolOp::traverse(IVisitor* visitor)
{
    _values.traverse(visitor);
}